package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Scrm1430
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Scrm1430 {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Scrm1430.jsp";
	private String dataCorrente;
	private String horaCorrente;
	private String jdiaini;
	private String jmesini;
	private String janoini;
	private String jdiafim;
	private String jmesfim;
	private String janofim;
	public String jDataIni;
	public String jDataFim;
	private int jTotal;
	private int[] jMatricula = new int[13];
	private String[] jDigitador = new String[13];
	private int[] jQuantidade = new int[13];
	private String[] jColocacao = new String[13];
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;
	private String jVersaoj;
	private String jEmpresaj;
	private String jProgramaj;

	// Classes views
	// Classes includes
	public Scrm1430() {
		inicializar(false);
	}

	public Scrm1430(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			dataCorrente = "";
			jdiaini = "";
			jmesini = "";
			janoini = "";
			jdiafim = "";
			jmesfim = "";
			janofim = "";
			Arrays.fill(jMatricula, 0);
			Arrays.fill(jDigitador, "");
			Arrays.fill(jQuantidade, 0);
			Arrays.fill(jColocacao, "");
			jTotal = 0;
			jEmpresaj = sessao.getScrg001().getWEmpresaw();
			jProgramaj = sessao.getScrg001().getWProgramaw();
			jVersaoj = sessao.getScrg001().getWVersaow();
		}
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
		dataCorrente = new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime()); // *DATE
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		return true;
	}

	public String getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(String dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public String getJdiaini() {
		return jdiaini;
	}

	public void setJdiaini(String jdiaini) {
		this.jdiaini = jdiaini;
	}

	public String getJmesini() {
		return jmesini;
	}

	public void setJmesini(String jmesini) {
		this.jmesini = jmesini;
	}

	public String getJanoini() {
		return janoini;
	}

	public void setJanoini(String janoini) {
		this.janoini = janoini;
	}

	public String getJdiafim() {
		return jdiafim;
	}

	public void setJdiafim(String jdiafim) {
		this.jdiafim = jdiafim;
	}

	public String getJmesfim() {
		return jmesfim;
	}

	public void setJmesfim(String jmesfim) {
		this.jmesfim = jmesfim;
	}

	public String getJanofim() {
		return janofim;
	}

	public void setJanofim(String janofim) {
		this.janofim = janofim;
	}

	public int getJtotal() {
		return jTotal;
	}

	public int getjDataIni() {
		return Integer.valueOf(this.janoini) * 10000 + Integer.valueOf(this.jmesini) * 100 + Integer.valueOf(this.jdiaini);
	}

	public void setjDataIni(int jDataIni) {
		this.jDataIni = String.valueOf(jDataIni);
		this.janoini = String.valueOf(UtilBean.subStr(this.jDataIni, 0, 4));
		this.jmesini = String.valueOf(UtilBean.subStr(this.jDataIni, 4, 2));
		this.jdiaini = String.valueOf(UtilBean.subStr(this.jDataIni, 6, 2));
	}

	public int getjDataFim() {
		return Integer.valueOf(this.janofim) * 10000 + Integer.valueOf(this.jmesfim) * 100 + Integer.valueOf(this.jdiafim);
	}

	public void setjDataFim(int jDataFim) {
		this.jDataFim = String.valueOf(jDataFim);
		this.janofim = String.valueOf(UtilBean.subStr(this.jDataFim, 0, 4));
		this.jmesfim = String.valueOf(UtilBean.subStr(this.jDataFim, 4, 2));
		this.jdiafim = String.valueOf(UtilBean.subStr(this.jDataFim, 6, 2));
	}

	public void setJtotal(int jTotal) {
		this.jTotal = jTotal;
	}

	public int[] getJmatricula() {
		return jMatricula;
	}

	public void setJmatricula(int[] jMatricula) {
		this.jMatricula = jMatricula;
	}

	public String[] getJdigitador() {
		return jDigitador;
	}

	public void setJdigitador(String[] jDigitador) {
		this.jDigitador = jDigitador;
	}

	public int[] getJquantidade() {
		return jQuantidade;
	}

	public void setJquantidade(int[] jQuantidade) {
		this.jQuantidade = jQuantidade;
	}

	public String[] getJcolocacao() {
		return jColocacao;
	}

	public void setJcolocacao(String[] jColocacao) {
		this.jColocacao = jColocacao;
	}

	public int getJmatricula(int index) {
		return jMatricula[index];
	}

	public void setJmatricula(int index, int jMatricula) {
		this.jMatricula[index] = jMatricula;
	}

	public String getJdigitador(int index) {
		return jDigitador[index];
	}

	public void setJdigitador(int index, String jDigitador) {
		this.jDigitador[index] = jDigitador;
	}

	public int getJquantidade(int index) {
		return jQuantidade[index];
	}

	public void setJquantidade(int index, int jQuantidade) {
		this.jQuantidade[index] = jQuantidade;
	}

	public String getJcolocacao(int index) {
		return jColocacao[index];
	}

	public void setJcolocacao(int index, String jColocacao) {
		this.jColocacao[index] = jColocacao;
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}

	public String getJversaoj() {
		return jVersaoj;
	}

	public void setJversaoj(String jVersaoj) {
		this.jVersaoj = jVersaoj;
	}

	public String getJempresaj() {
		return jEmpresaj;
	}

	public void setJempresaj(String jEmpresaj) {
		this.jEmpresaj = jEmpresaj;
	}

	public String getJprogramaj() {
		return jProgramaj;
	}

	public void setJprogramaj(String jProgramaj) {
		this.jProgramaj = jProgramaj;
	}
}
